آنها می توانند بازی ها، انیمیشن ها یا شبیه مسابقات اسکرچ سازی های خود را ایجاد کنند. گویی می توانند "بخوانند" اما "نوشتن" ندارند.
همانطور که می بینیم، تسلط دیجیتال نه تنها به توانایی چت، مرور، و تعامل نیاز دارد، بلکه به توانایی طراحی، ایجاد و اختراع با رسانه های جدید نیز نیاز دارد، همانطور که BalaBethany در پروژه های خود انجام داد. برای این کار باید نوعی برنامه نویسی را یاد بگیرید. توانایی برنامهنویسی مزایای مهم بسیاری مسابقات اسکرچ را ارائه میدهد: دامنه آنچه را که میتوانید ایجاد کنید (و چگونه میتوانید خود را بیان کنید) با رایانه را تا حد زیادی گسترش میدهد، در حالی که دامنه چیزهایی را که میتوانید بیاموزید نیز گسترش میدهد. به طور خاص، برنامهنویسی از توسعه «تفکر محاسباتی» پشتیبانی میکند و به شما کمک میکند تا راهبردهای مهم حل مسئله و طراحی (مانند مدولارسازی و طراحی تکراری) را که به حوزههای غیربرنامهنویسی منتقل میشوند، بیاموزید. و از آنجایی که برنامه نویسی شامل ایجاد بازنمایی های خارجی از فرآیندهای حل مسئله شما می شود، برنامه نویسی فرصت هایی را برای شما فراهم می کند تا در مورد تفکر خود فکر کنید - و حتی در مورد خود فکر کردن فکر کنید. در دهه 1980، اشتیاق اولیه برای آموزش برنامهنویسی به همه کودکان وجود داشت مسابقات اسکرچ. هزاران مدرسه به میلیون ها دانش آموز یاد دادند که برنامه های ساده ای را در لوگو یا پایه بنویسند. کتاب Simour Papert Mindstorms13 لوگو را به عنوان سنگ بنای بازنگری رویکردهای آموزش و یادگیری معرفی کرد. اگرچه برخی از کودکان و معلمان با این امکانات جدید انرژی گرفتند و متحول شدند، بیشتر مدارس به زودی به استفاده های دیگر از رایانه تغییر یافتند. در 20 سال گذشته، رایانه ها به یک حضور فراگیر در زندگی کودکان تبدیل شده اند، اما تعداد کمی از کودکان برنامه نویسی را یاد می گیرند. امروزه، بیشتر مردم برنامهنویسی رایانهای را به عنوان یک فعالیت محدود و فنی میبینند که فقط برای بخش کوچکی از مردم مناسب است. شور و شوق اولیه برای معرفی برنامه نویسی به کودکان چه شد؟ چرا لوگو و سایر ابتکارات به وعده خود مسابقات اسکرچ عمل نکردند؟ چندین عامل وجود داشت: • استفاده از زبان های برنامه نویسی اولیه بسیار دشوار بود. بسیاری از کودکان در تسلط بر نحو برنامه نویسی مشکل داشتند. • برنامه نویسی اغلب با فعالیت هایی (تولید لیستی از اعداد اول، یا ساختن خطوط ساده) که به علایق یا تجربیات جوانان مرتبط نبود، معرفی می شد. • برنامهنویسی اغلب در زمینههایی معرفی میشد مسابقات اسکرچ که در آن هیچکس تخصص لازم برای ارائه راهنمایی در هنگام اشتباه را نداشت – یا تشویق به کاوشهای عمیقتر در زمانی که همه چیز درست پیش میرفت. Papert استدلال کرد که زبان های برنامه نویسی باید دارای کف پایین (آسان برای شروع) و سقف بلند (فرصت هایی برای پروژه های پیچیده تر در طول زمان) باشند. علاوه بر این، ما معتقدیم که زبانها به دیوارهای گسترده نیاز دارند (پشتیبانی از انواع مختلف پروژهها، به طوری که افراد با علایق و سبکهای یادگیری متفاوت میتوانند همگی درگیر شوند). ارضای سه گانه دیوارهای کف پایین/ سقف بلند/ عریض آسان نبوده است.3 در سال های اخیر، تلاش های جدیدی برای معرفی برنامه نویسی به کودکان و نوجوانان صورت گرفته است.6 برخی از زبان های برنامه نویسی حرفه ای مانند Flash/ActionScript استفاده می کنند. دیگران استفاده می کنند
زبانهای جدیدی مانند Alice7 و Squeak Etoys5 مخصوص برنامهنویسان جوانتر توسعه یافتهاند. این تلاشها الهامبخش کار ما بر روی اسکرچ بوده است. اما ما به طور کامل از گزینه های آموزش برنامه نویسی کودکان و نوجوانان موجود راضی نبودیم. به ویژه، ما احساس کردیم که مهم است که کف را حتی پایین تر و دیوارها مسابقات اسکرچ را حتی بیشتر کنیم - اما همچنان از توسعه تفکر محاسباتی حمایت می کنیم. برای دستیابی به این اهداف، ما سه اصل طراحی اصلی را برای Scratch ایجاد کردیم: میخواستیم آن را نسبت به سایر محیطهای برنامهنویسی قابل تغییر، معنادارتر و اجتماعیتر کنیم. سه بخش بعدی هر یک از این اصول طراحی را مورد بحث قرار میدهند و اینکه چگونه آنها طراحی Scratch را هدایت میکنند. کارکرد بیشتر گروه تحقیقاتی ما سال ها با شرکت LEGO همکاری نزدیک داشته است و مسابقات اسکرچ به توسعه LEGO MINDSTORMS و سایر کیت های روباتیک کمک کرده است. ما همیشه از نحوه بازی و ساخت کودکان با آجرهای لگو مجذوب و الهام گرفته ایم. با در نظر گرفتن جعبه ای پر از آجرهای لگو، کودکان شروع به سرهم بندی می کنند. آنها چند آجر را به هم میچسبانند و ساختار در حال ظهور ایدههای جدیدی به آنها میدهد. همانطور که کودکان با آجرهای لگو بازی می کنند و می سازند، برنامه ها و اهداف به طور ارگانیک همراه با سازه ها تکامل می یابند. ما می خواستیم روند برنامه نویسی در اسکرچ نیز حسی مشابه داشته باشد. گرامر Scratch بر اساس مجموعهای از «بلوکهای برنامهنویسی» گرافیکی است که کودکان مسابقات اسکرچ برای ایجاد برنامهها به هم میچسبند. همانند آجرهای لگو، رابطهای روی بلوکها نشان میدهند که چگونه باید در کنار هم قرار گیرند. بچهها میتوانند با سرهمکردن بلوکها شروع کنند، آنها را در توالیها و ترکیبهای مختلف به هم بچسبانند تا ببینند چه اتفاقی میافتد. هیچ یک از نحو یا نشانه گذاری مبهم زبان های برنامه نویسی سنتی وجود ندارد. کف پایین است و تجربه بازیگوش است. شکل 2: نمونه اسکریپت های Scratch Scratch competitions بلوک های خراش طوری شکل می گیرند که فقط به روش هایی که معنای نحوی را ایجاد می کند با هم قرار گیرند. کنترل
آنها می توانند بازی ها، انیمیشن ها یا شبیه مسابقات اسکرچ سازی های خود را ایجاد کنند. گویی می توانند "بخوانند" اما "نوشتن" ندارند.
همانطور که می بینیم، تسلط دیجیتال نه تنها به توانایی چت، مرور، و تعامل نیاز دارد، بلکه به توانایی طراحی، ایجاد و اختراع با رسانه های جدید نیز نیاز دارد، همانطور که BalaBethany در پروژه های خود انجام داد. برای این کار باید نوعی برنامه نویسی را یاد بگیرید. توانایی برنامهنویسی مزایای مهم بسیاری مسابقات اسکرچ را ارائه میدهد: دامنه آنچه را که میتوانید ایجاد کنید (و چگونه میتوانید خود را بیان کنید) با رایانه را تا حد زیادی گسترش میدهد، در حالی که دامنه چیزهایی را که میتوانید بیاموزید نیز گسترش میدهد. به طور خاص، برنامهنویسی از توسعه «تفکر محاسباتی» پشتیبانی میکند و به شما کمک میکند تا راهبردهای مهم حل مسئله و طراحی (مانند مدولارسازی و طراحی تکراری) را که به حوزههای غیربرنامهنویسی منتقل میشوند، بیاموزید. و از آنجایی که برنامه نویسی شامل ایجاد بازنمایی های خارجی از فرآیندهای حل مسئله شما می شود، برنامه نویسی فرصت هایی را برای شما فراهم می کند تا در مورد تفکر خود فکر کنید - و حتی در مورد خود فکر کردن فکر کنید. در دهه 1980، اشتیاق اولیه برای آموزش برنامهنویسی به همه کودکان وجود داشت مسابقات اسکرچ. هزاران مدرسه به میلیون ها دانش آموز یاد دادند که برنامه های ساده ای را در لوگو یا پایه بنویسند. کتاب Simour Papert Mindstorms13 لوگو را به عنوان سنگ بنای بازنگری رویکردهای آموزش و یادگیری معرفی کرد. اگرچه برخی از کودکان و معلمان با این امکانات جدید انرژی گرفتند و متحول شدند، بیشتر مدارس به زودی به استفاده های دیگر از رایانه تغییر یافتند. در 20 سال گذشته، رایانه ها به یک حضور فراگیر در زندگی کودکان تبدیل شده اند، اما تعداد کمی از کودکان برنامه نویسی را یاد می گیرند. امروزه، بیشتر مردم برنامهنویسی رایانهای را به عنوان یک فعالیت محدود و فنی میبینند که فقط برای بخش کوچکی از مردم مناسب است. شور و شوق اولیه برای معرفی برنامه نویسی به کودکان چه شد؟ چرا لوگو و سایر ابتکارات به وعده خود مسابقات اسکرچ عمل نکردند؟ چندین عامل وجود داشت: • استفاده از زبان های برنامه نویسی اولیه بسیار دشوار بود. بسیاری از کودکان در تسلط بر نحو برنامه نویسی مشکل داشتند. • برنامه نویسی اغلب با فعالیت هایی (تولید لیستی از اعداد اول، یا ساختن خطوط ساده) که به علایق یا تجربیات جوانان مرتبط نبود، معرفی می شد. • برنامهنویسی اغلب در زمینههایی معرفی میشد مسابقات اسکرچ که در آن هیچکس تخصص لازم برای ارائه راهنمایی در هنگام اشتباه را نداشت – یا تشویق به کاوشهای عمیقتر در زمانی که همه چیز درست پیش میرفت. Papert استدلال کرد که زبان های برنامه نویسی باید دارای کف پایین (آسان برای شروع) و سقف بلند (فرصت هایی برای پروژه های پیچیده تر در طول زمان) باشند. علاوه بر این، ما معتقدیم که زبانها به دیوارهای گسترده نیاز دارند (پشتیبانی از انواع مختلف پروژهها، به طوری که افراد با علایق و سبکهای یادگیری متفاوت میتوانند همگی درگیر شوند). ارضای سه گانه دیوارهای کف پایین/ سقف بلند/ عریض آسان نبوده است.3 در سال های اخیر، تلاش های جدیدی برای معرفی برنامه نویسی به کودکان و نوجوانان صورت گرفته است.6 برخی از زبان های برنامه نویسی حرفه ای مانند Flash/ActionScript استفاده می کنند. دیگران استفاده می کنند
زبانهای جدیدی مانند Alice7 و Squeak Etoys5 مخصوص برنامهنویسان جوانتر توسعه یافتهاند. این تلاشها الهامبخش کار ما بر روی اسکرچ بوده است. اما ما به طور کامل از گزینه های آموزش برنامه نویسی کودکان و نوجوانان موجود راضی نبودیم. به ویژه، ما احساس کردیم که مهم است که کف را حتی پایین تر و دیوارها مسابقات اسکرچ را حتی بیشتر کنیم - اما همچنان از توسعه تفکر محاسباتی حمایت می کنیم. برای دستیابی به این اهداف، ما سه اصل طراحی اصلی را برای Scratch ایجاد کردیم: میخواستیم آن را نسبت به سایر محیطهای برنامهنویسی قابل تغییر، معنادارتر و اجتماعیتر کنیم. سه بخش بعدی هر یک از این اصول طراحی را مورد بحث قرار میدهند و اینکه چگونه آنها طراحی Scratch را هدایت میکنند. کارکرد بیشتر گروه تحقیقاتی ما سال ها با شرکت LEGO همکاری نزدیک داشته است و مسابقات اسکرچ به توسعه LEGO MINDSTORMS و سایر کیت های روباتیک کمک کرده است. ما همیشه از نحوه بازی و ساخت کودکان با آجرهای لگو مجذوب و الهام گرفته ایم. با در نظر گرفتن جعبه ای پر از آجرهای لگو، کودکان شروع به سرهم بندی می کنند. آنها چند آجر را به هم میچسبانند و ساختار در حال ظهور ایدههای جدیدی به آنها میدهد. همانطور که کودکان با آجرهای لگو بازی می کنند و می سازند، برنامه ها و اهداف به طور ارگانیک همراه با سازه ها تکامل می یابند. ما می خواستیم روند برنامه نویسی در اسکرچ نیز حسی مشابه داشته باشد. گرامر Scratch بر اساس مجموعهای از «بلوکهای برنامهنویسی» گرافیکی است که کودکان مسابقات اسکرچ برای ایجاد برنامهها به هم میچسبند. همانند آجرهای لگو، رابطهای روی بلوکها نشان میدهند که چگونه باید در کنار هم قرار گیرند. بچهها میتوانند با سرهمکردن بلوکها شروع کنند، آنها را در توالیها و ترکیبهای مختلف به هم بچسبانند تا ببینند چه اتفاقی میافتد. هیچ یک از نحو یا نشانه گذاری مبهم زبان های برنامه نویسی سنتی وجود ندارد. کف پایین است و تجربه بازیگوش است. شکل 2: نمونه اسکریپت های Scratch Scratch competitions بلوک های خراش طوری شکل می گیرند که فقط به روش هایی که معنای نحوی را ایجاد می کند با هم قرار گیرند. کنترل